// i.d(t, { n: () => NotImplementedError })
import BaseException from "./base.exception"

export class NotImplementedError extends BaseException {
  constructor(e: Error | string = "Not implemented") {
    super(e)
    this.name = "NotImplemented"
  }
}
export class StorageError extends BaseException {
  constructor(e: Error | string, code = "50001") {
    super(e, code)
    this.name = "StorageError"
    this.code = code
  }
}
export class SaveError extends BaseException {
  constructor(e: Error | string, code = "53100") {
    super(e)
    this.name = "SaveError"
    this.code = code
  }
}
export class PublishError extends BaseException {
  constructor(e: Error | string, code = "53200") {
    super(e)
    this.name = "PublishError"
    this.code = code
  }
}
export class RevertError extends BaseException {
  constructor(e: Error | string, code = "53300") {
    super(e)
    this.name = "RevertError"
    this.code = code
  }
}
export class ReadOnlyError extends BaseException {
  constructor(e: Error | string, code = "53001") {
    super(e)
    this.name = "ReadOnly"
    this.code = code
  }
}
export class InvalidViewError extends BaseException {
  constructor(e: Error | string, code = "52404") {
    super(e)
    this.name = "InvalidView"
    this.code = code
  }
}
